using UnityEngine;
using System.Collections;

namespace AProject
{
    public enum EquipmentType
    {
        None = 0,
        Hat = 1,
        Shield = 4,
    }

    public class DDefine
    {
        public static string Hat_Equip_Path = "Prefab/Equipment/Hat/";
        public static string Shield_Equip_Path = "Prefab/Equipment/Shield/";

        public static int MAX_ZOMBIE = 15;
        public static int MIN_IDMISSION_DAILY_BONUS = 1000;
        public static int MAX_IDMISSION_DAILY_BONUS = 1009;
    }

    public enum DLayer : int
    {
        Default = 0,
        UI = 8,
        StaticObject = 9,
        DynamicObject = 10,
        Fence = 11,
        Zombie = 12,
        Bullet = 13,
        Ground = 14,
        Equipment = 15,
        Bip = 16,
        ZombiePart = 17,
        UILoading = 31,
    }

    public class GlobalLayersMask
    {
        public const int UIMask = 1 << (int)DLayer.UI;
        public const int StaticObjectMask = 1 << (int)DLayer.StaticObject;
        public const int DynamicObjectMask = 1 << (int)DLayer.DynamicObject;
        public const int ObstacleMask = 1 << (int)DLayer.Fence;
        public const int ZombieMask = 1 << (int)DLayer.Zombie;
        public const int BulletMask = 1 << (int)DLayer.Bullet;
        public const int GroundMask = 1 << (int)DLayer.Ground;
        public const int EquipmentMask = 1 << (int)DLayer.Equipment;
        public const int Fence = 1 << (int)DLayer.Fence;
        public const int UILoadingMask = 1 << (int)DLayer.UILoading;
    }

    public enum EffectType : int
    {
        Wall = 1,
        Ground,
        Iron,
    }

    public enum BonePartName : int
    {
        AbdominalCenter,
        BackCenter,
        StockCenter,
        HeadTop,
        Head,

        UpperArmRight,
        UpperArmLeft,

        ForeArmRight,
        ForeArmLeft,

        FingerthumbRightHand,
        FingerthumbLeftHand,

        FingerthumbCenterRightHand,
        FingerthumbCenterLeftHand,

        FingerthumbTopRightHand,
        FingerthumbTopLeftHand,

        PalmRightHand,
        PalmLeftHand,

        PalmCenterRightHand,
        PalmCenterLeftHand,

        PalmTopRightHand,
        PalmTopLeftHand,

        RightHand,
        LeftHand,

        ThighRight,
        ThighLeft,

        KneeRight,
        KneeLeft,

        AnkleRight,
        AnkleLeft,

        ToeRight,
        ToeLeft,

        ToeTopRight,
        ToeTopLeft,
        Root,
        Pelvis,
        AbdominalLowCenter,
    }

    public enum AnimMovingType : int
    {
        Walk = 0,
        Crawl = 1,
    }

    public enum SpeedMovingType : int
    {
        Slow = 0,
        Normal = 1,
        Fast = 2,
    }

    public enum ModelLOD : int
    {
        Hi = 0,
#if USE_MULTIPLE_LOD
		Med,
		Lo
#endif // USE_MULTIPLE_LOD
    }

    public enum ModelStatus : int
    {
        Full = 0,
        RightLeg = 1,
        LeftLeg = 2,
        Legs = 3,
        RightHand = 4,
        RightLeg_RightHand = 5,
        LeftLeg_RightHand = 6,
        Legs_RightHand = 7,
        RightLeg_LeftHand = 8,
        LeftLeg_LeftHand = 9,
        Legs_LeftHand = 10,
        LeftHand = 11,
        RightLeg_Hands = 12,
        LeftLeg_Hands = 13,
        Head = 14,
        RightLeg_Head = 15,
        LeftLeg_Head = 16,
        Legs_Head = 17,
        RightHand_Head = 18,
        RightLeg_RightHand_Head = 19,
        LeftLeg_RightHand_Head = 20,
        LeftHand_Head = 21,
        RightLeg_LeftHand_Head = 22,
        LeftLeg_LeftHand_Head = 23,
        Hands_Head = 24,
        Hands = 25,
        End = 26,
    }

    public enum SceneID : int
    {
        Splash = 0,
        Map = 1,
        Hospital = 2,
        Bridge = 3,
        Prison = 4,
        Subway_Station = 5,
        City_Corner = 6,
        End = 7,
    }

    public enum AppearanceType : int
    {
        Normal = 0,
        ClimbUp = 1,
        Falldown = 2,
        JumpLeft = 3,
        JumpRight = 4,
        CreepOutTop = 5,
        CreepOutButtom = 6,
        CreepOutLeft = 7,
        CreepOutRight = 8,
        ClimbUpRightLeft = 9,
        FalldownLeft = 10,
    }

    public enum ZombieModel
    {
        None = 0,
        Homeless = 1,
        HomelessJump = 11,
        HomelessFastAppear = 12,
        FatDaddy = 2,
        FatMommy = 3,
        Thief = 4,
        Plumber = 5,
        Spider = 6,
        FlyHead = 7,
        Nurse = 8,
        Rocky = 9,  //boss 1
        Devil = 10, // boss 2
        Dog = 13,
        Machinist = 14,
        Crow = 15,
        Venom = 16,
        Policeman = 17,
		Count
    }

    public enum HoleType : int
    {
        None = 0,
        Down = 1,
        Up = 2,
    }

    public enum ZombieQuality : int
    {
        None = 0,
        High = 1,
        Mid = 2,
        Low = 3,
    }

    public enum DifficultyMode : int
    {
        Easy = 1,
        Normal = 2,
        Hard = 3,
    }

    public enum ZombieMode : int
    {
        Weak = 1,
        Normal = 2,
        Strong = 3,
    }

    public enum ePlayerBehit
    {
        Bottom = 0,
        Left = 1,
        Right = 2,
        Top = 3
    }

    public enum Zombie5Part : int
    {
        Head = 1,
        HandL = 2,
        HandR = 3,
        LegL = 4,
        LegR = 5,
        End = 6,
    }

    public enum ePopup
    {
        HeadShort10 = 0,
        HeadShort20,
        Fatal,
        MultiKill,
        MegaKill,
        SubMoney,
		ShotOffHat,
		ShotOffShield
    }

    public enum eDynamicObject
    {
        Gift = 0,
        Environment = 1,
    }
    public enum eTypeDynamicObject
    {
        Gift = 0,
        FuelTank = 1,
        LiquidNitrogen = 2
    }
    public enum eGift
    {
        GiftPrefab = 0,
        GiftText = 1,
        GiftText3D = 2
    }
    public enum eEnvironment
    {
        FuelTank = 0,
        LiquidNitrogen = 1,
    }
    public enum eLuckyGift
    {
        Gift = 0,
        SlowDownGift = 1,
        PlusTime = 2,
    }
    public enum eTypeConsumable
    {
        Grenades = 0,
        AidKit = 1,
    }
    public enum eBossState
    {
        HaveArmor,
        NoneArmor,
        RegenArmor
    }
    public enum eTypeTarget
    {
        FiveUp = 0,
        FiveUpRight = 1,
        FourUp = 2,
        FourUpRight = 3,
        Eight = 4,
        Nine = 5,
    }
    public enum eAttackAnimation
    {
        LeftHandDown,
        LeftHandUp,
        RightHandDown,
        RightHandUp,
        Head,
        Throw
    }

    //public enum SocialNetworkType : int
    //{
    //	Facebook = 1,
    //	Twitter = 2,
    //	GooglePlus = 3,
    //}

    public enum PriceType
    {
		Unknown = -1,
		PriceTypePay = 1,
		PriceTypeGame = 2
    }

    public enum AchievementType : int
    {
        KillZombie = 1,
        KillBoss = 2,
        UnlockBoost = 3,
        UnlockGun = 4,
        Headshot = 5,
        Combo = 6,
        FinishMission = 7,
        HeadshotContinuously = 8,
        Accuracy = 9,
        ShotBullet = 10,
        KillZBSeriesZBType = 11,
        WinSeriesFullHP = 12,
        KillBossWithGun = 13,
        CountQuadraKill = 14,
        KillBossWithoutGun = 15,
        KillZBSeriesNoReload = 16,
        WinBattle0amTo1am = 17,
        BehitCount = 18,
        UpgradeGunID = 19,
    }

    public enum QuestType : int
    {
        Payment = 1,
        Draw = 2,
        LuckyDraw = 3,
        FreeGold = 4,
        GunAcquired = 5,
        GunUp = 6,
        AmmoGun = 7,
        GameMoney = 8,
        TakeBattle = 9,
        WinBattle = 10,
        Rampage = 11,
        KillZombies = 12,
        Headshot = 13,
        Combo = 14,
        Accuracy = 15,
        ZombieArms = 16,
        ZombieLegs = 17,
        KillingZombie_Type = 18,
        KillingZombie_Type_Head = 19,
        KillingFree_ByGun = 20,
        KillingFree_ByGrenades = 21,
        KillingFree_Boss_Grenades = 22,
        BossKiller = 23,
        LordOfWard = 24,
        Reload = 25,
        ChangeGun = 26,
        UpgradeArmor = 27,
        RepairArmor = 28,
        Bonus = 29,
        ConsWin = 30,
        KillZombieInRageMode = 31,
        KillZombieByDrumExplosed = 32,
        FreezeZombie = 33,
        KillZombieConcByDrumExplosed = 34,
        FreezeZombieConc = 35,
        WinWithoutZombieAttacked = 36,
        HeadshotZBByGunId = 37,
        HeadshotPerBattle = 38,
        KillZombieConcByGenerades = 39,

        KillZB_LowHP = 40,
        MultiKillCount = 41,
        WinOnlyUseGrenades = 42,
        WinWithoutHeadShot = 43,
        WinOnlyHeadShot = 44,
        OneShotKillZBCount = 45,
        WinWithXXBullet = 46,

        UseBoostCount = 47,
        ShotOffShield = 48,
        ShotOffHat = 49,
        UseAID = 50,

    }

	public enum Country_Use_Lang : int//DO NOT MODIFY
	{
		None = 0,
		US = 1,
		DE = 2,
		FR = 3,
		IT = 4,
		ES = 5,
		RU = 6,
		KR = 7,
		JP = 8,
		TH = 9,
		VN = 10,
		CNS = 11,
		CNT = 12,
	}

    #region [Caching Param from Configuration]
    public enum ZombieBuffParamID : int
    {
        AttackDistance = 1,
        Cooldown = 2,
        SpeedUp = 3,
        TimeEffective = 4,
    }

    public enum ZombieBoss1ParamsID : int
    {
        MovingTime = 1,
        IdleTime = 2,
    }

    public enum VelocityParamID : int
    {
        Fast = 1,
        Normal = 2,
        Slow = 3,
        Rate_Easy_Fast = 4,
        Rate_Easy_Normal = 5,
        Rate_Easy_Slow = 6,
        Rate_Normal_Fast = 7,
        Rate_Normal_Normal = 8,
        Rate_Normal_Slow = 9,
        Rate_Difficult_Fast = 7,
        Rate_Difficult_Normal = 8,
        Rate_Difficult_Slow = 9,
    }

    public enum TapjoyKeyID : int
    {
        APP_ID_ANDROID = 1,
        SECRET_ID_ANDROID = 2,
        APP_ID_IOS = 1,
        SECRET_ID_IOS = 2,
    }

	//public static class TapjoyKey
	//{
	//    public static string APP_ID_ANDROID;
	//    public static string SECRET_ID_ANDROID;
	//    public static string APP_ID_IOS;
	//    public static string SECRET_ID_IOS;

	//    public static void LoadParam()
	//    {
	//        APP_ID_ANDROID = ConfigManager.instance.configTapjoyKey.GetValue((int)TapjoyKeyID.APP_ID_ANDROID);
	//        SECRET_ID_ANDROID = ConfigManager.instance.configTapjoyKey.GetValue((int)TapjoyKeyID.SECRET_ID_ANDROID);
	//        APP_ID_IOS = ConfigManager.instance.configTapjoyKey.GetValue((int)TapjoyKeyID.APP_ID_IOS);
	//        SECRET_ID_IOS = ConfigManager.instance.configTapjoyKey.GetValue((int)TapjoyKeyID.SECRET_ID_IOS);
	//    }
	//}
    #endregion
}